/**
 * Description:
 * Class Name:FileVisitorTest
 * Date:2022/5/4 16:32
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第15章_输入输出._15_10_NIO2的功能和用法._15_10_2_使用FileVisitor遍历文件和目录;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;

public class FileVisitorTest {
    public static void main(String[] args) throws Exception{
        Files.walkFileTree(Paths.get("."), new SimpleFileVisitor<Path>(){
            // 访问文件时触发该方法
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException{
                System.out.println("正在访问：" + file + " 文件");
                if (file.endsWith("FileVisitorTest.java")){
                    System.out.println("--已经找到目标文件--");
                    return FileVisitResult.TERMINATE;
                }
                return FileVisitResult.CONTINUE;
            }
            //访问目录时触发该方法
            @Override
            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attributes) throws IOException{
                System.out.println("正在访问：" + dir + " 目录");
                return FileVisitResult.CONTINUE;
            }
        });
    }
}
